package com.luo.ai.assistant.chat;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Positive;
import lombok.Builder;
import lombok.Data;


/**
 * chat请求
 *
 * @author luohq
 * @date 2025-01-02 11:06
 */
@Data
@Builder
public class MyChatRequest {
    /**
     * 用户输入
     */
    @NotBlank
    private String userInput;

    /**
     * System输入
     */
    private String systemInput;


    //====================================
    //========== 会话及聊天历史=============
    //====================================

    /**
     * 会话ID
     */
    private String chatConvId;
    /**
     * 聊天历史记录数
     */
    @Positive
    private Integer chatHistoryCount;

    //====================================
    //========== 用于RAG向量存储相似性检索 =========
    //====================================
    /**
     * 最接近的K条向量数
     */
    private Integer ragTopK;
    /**
     * 相似度阈值
     */
    private Double ragSimilarityThreshold;
    /**
     * Rag过滤器表达式（用于向量相似性检索）
     */
    private String ragFilterExpression;
}
